home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu309.dms
/
pu309.adf
/
Radio-Log
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1990-09-05
|
25KB
|
843 lines
' RADIO-LOG (©) Copyright 1990 by Rev.Arend Venema Snr. (VK3CHP)
'
' Copy of the program only permitted if program is copied unchanged.
' See SHARE-Note in Read-Me Program.
TOP:
CLEAR ,200000 ,8000
GOSUB 30000 :GOTO 1000
2 :
IF NUM=1 AND NM=1 THEN RETURN
C$=CS$:
IF JO=1 THEN C$=OCS$
W=1:T=NM:J=LEN(C$):FL=0:UP=0:DWN=0:Y=0
3 :
X= INT (T/2)
4 IF C$ = LEFT$(IN$(T),J) THEN GOTO 23
5 IF C$ < LEFT$(IN$(T),J) THEN T = (T-X):X = INT(X/2):XL=1
6 IF X = 0 AND XL = 1 THEN T = T - 1
7 IF T < 1 THEN T = 0: GOTO 28
8 IF T > NM THEN T = 0: GOTO 28
9 IF C$ > LEFT$(IN$(T),J) THEN T = (T+X):X = INT(X/2):XK=1
10 IF X=0 AND XK=1 THEN T=T+1
11 W=1
12 FL=FL+1: IF FL=20 THEN T=0: GOTO 18
13 IF T<1 THEN T=0: GOTO 28
14 IF T>NM THEN T=0: GOTO 28
15 XL=0:XK=0: GOTO 4
16 IF C$= LEFT$(IN$(T),J) THEN GOTO 23
17 GOTO 22
18 IF C$ <> LEFT$(IN$(T),J) THEN 28
19 IF C$ = LEFT$(IN$(T),J) THEN GOTO 23
20 IF UP=1 THEN T=T+1: GOTO 18
21 IF DWN=1 THEN T=T-1: GOTO 18
22 IF FL THEN GOTO 4
23 IF C$ > LEFT$(IN$(T),LEN(IN$(T))-4) THEN T=T+1:UP=1: GOTO 18
24 IF C$ < LEFT$(IN$(T),LEN(IN$(T))-4) THEN T=T-1:DWN=1: GOTO 18
25 IF LEN(C$) <> LEN(IN$(T))-4 THEN 28
27 QL$="-":YU=1:XM=T:KK=0:LOCATE 21,1:GOTO 29
28 GOSUB CLRBT
QL$="+":YU=0:KL=0:LOCATE 21,4
COLOR 2,3:PRINT "NEW CALLSIGN - Type in information....":
COLOR 2,1
LOCATE V,3:PRINT TD$;:PRINT TAB(7);CS$;:TM$=" ":PRINT TAB(19);TM$;:
LOCATE V,27:FQ$=" ":PRINT FQ$;:RO$=" ":PRINT TAB(36);RO$;:RI$=" ":PRINT TAB(41);RI$;:
LOCATE V,46:NM$=" ":PRINT NM$;:QT$=" ":PRINT TAB(57);QT$;:
LOCATE V,72:PRINT NUM;:PRINT TAB(78);QL$
RETURN
29 FOR I = XM TO NUM-1: IF C$ <> LEFT$(IN$(I),LEN(IN$(I))-4) THEN E=I-1:GOTO 31
30 NEXT I
31 FOR I = XM TO 1 STEP -1: IF C$ <> LEFT$(IN$(I),LEN(IN$(I))-4) THEN Q=I+1:GOTO 33
32 NEXT I
33 IF Q=0 THEN Q=1
IF E=0 THEN E=1
IF XM=NUM-1 THEN E=XM
CT=(E-Q)+1:IF CT=<0 THEN CT=1
IF JO=1 THEN JO=0 : RETURN ' JO=Jump Out by Change Callsign
34 R%=VAL (RIGHT$(IN$(Q),4))
GOSUB CHECKDAT
MX=VAL(LEFT$(DT$,2))
XT$=MID$(DT$,4,2)
47 GOSUB CLRBT
LOCATE 21,4:COLOR 2,3:PRINT "First contact ";XT$;" ";MTH$(MX);" ";RIGHT$(DT$,4)
LOCATE 21,37:PRINT CS$;:PRINT TAB(46);NM$;:PRINT TAB(58);QT$;:PRINT TAB(72);R%;:PRINT TAB(78);QL$
49 R%=VAL(RIGHT$(IN$(E),4))
GOSUB CHECKDAT
MX=VAL(LEFT$(DT$,2))
XT$=MID$(DT$,4,2)
LOCATE 22,4:PRINT "Last contact ";XT$;" ";MTH$(MX);" ";RIGHT$(DT$,4)
LOCATE 23,4:PRINT "Number of contacts is ";:PRINT CT;:COLOR 2,1
LOCATE V,46:PRINT NM$;:PRINT TAB(57);QT$
Q=0:E=0:CT=0:TM$=" ":FQ$=" ":RO$=" ":RI$=" "
LOCATE V,19:PRINT TM$:LOCATE V,27:PRINT FQ$:LOCATE V,36:PRINT RO$:LOCATE V,41:PRINT RI$
RETURN
50 :' ROUTINE FOR MOVEMENT AFTER F KEY IS PRESSED..
F=0:C$=""
LOCATE BB,LL:COLOR 1,1:PRINT" ":COLOR 2,3
51 :
A$=INKEY$:A$=UCASE$(A$)
IF A$=CHR$(32) THEN BEWEEG
IF A$=""THEN 51
IF A$ = CHR$(8) THEN TERUG
SK=LEN(C$):IF SK>0 THEN SPRING
SPRING:
IF A$=CHR$(13) THEN LAATZIEN
IF A$>CHR$(57) AND A$<CHR$(65) THEN GOTO 51
IF A$>CHR$(46) AND A$<CHR$(91) THEN GOTO BEWEEG
IF F=0 THEN GOTO 51
LAATZIEN:
LOCATE BB,LL:PRINT C$;:COLOR 3,3:PRINT " "
RETURN
BEWEEG:
C$=C$+A$:
LOCATE BB,LL:PRINT C$;
COLOR 1,1:PRINT " ":COLOR 2,3
GOTO 51
TERUG:
U=LEN(C$)-1:IF U=-1 THEN 51
C$=LEFT$(C$,U):COLOR 2,3
LOCATE BB,LL:PRINT C$;
COLOR 1,1:PRINT " ";:COLOR 3,3:PRINT " "
GOTO 51
LOGBOOK:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,50:PRINT "LOGBOOK - LIST..."
LOCATE 21,4:PRINT "Starting No. of Logbook-List: "
BB=21:LL=34:GOSUB 50:SN$=C$
B=LEN(SN$):IF B>4 THEN PRINT BL$:GOTO LOGBOOK
COLOR 2,3
LOCATE 22,4:PRINT "Ending No. of Logbook-List: "
BB=22:LL=32:GOSUB 50:EN$=C$
B=LEN(EN$):IF B>4 THEN PRINT BL$:GOTO LOGBOOK
GOSUB CLRBT: COLOR 2,3:LOCATE 21,50:PRINT "LOGBOOK - LIST..."
LOCATE 21,4:PRINT "LOGBOOK LIST from No.: ";SN$;" to ";EN$
LOCATE 22,4:PRINT "Are You Happy With These Figures ? Y/N":
60 :
KL$=INKEY$ :KL$=UCASE$(KL$)
IF KL$ = "Y" THEN 62
IF KL$= "N" THEN 61
IF KL$ <> "Y" OR KL$ <> "N" THEN 60
61 IF KL$="N" THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE
62 R%=VAL(SN$):E=VAL(EN$): PG=1:PA=1
69 :
GOSUB CHECKDAT
IF PG=1 THEN LPRINT TAB(20):LPRINT "L O G B O O K - L I S T from ";SN$;" to ";EN$;:LPRINT TAB(70)
IF PG=1 THEN LPRINT "PAGE :"PA:FOR I = 1 TO 80:LPRINT "-";:NEXT
IF PG=1 THEN LPRINT "NUM. CALLSIGN DATE TIME FREQ. SIGNAL SIGNAL NAME TOWN QSL":
IF PG=1 THEN FOR I = 1 TO 80:LPRINT "-";:NEXT:LPRINT:
R$=STR$(R%):R$=MID$(R$,2,(LEN(R$)-1))
IF LEN(R$)=1 THEN R$="000"+R$
IF LEN(R$)=2 THEN R$="00"+R$
IF LEN(R$)=3 THEN R$="0"+R$
GOSUB PRILINE :
R%=R%+1:IF R%=E+1 THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE
PG=PG+1:IF PG=KJ THEN PG=1:PA=PA+1:LPRINT:LPRINT:FOR I = 1 TO 80:LPRINT "-";:NEXT:LPRINT:LPRINT:LPRINT:LPRINT:
GOTO 69
80 : ' window
title$=SPACE$(Z)+"LOGBOOK "+SU$(1)
WINDOW 2,title$,(0,0)-(631,186),16
81 :
COLOR 2,3:CLS:COLOR 2,1
tp=32:bt=155:lf=8:rt=626
LINE (4,tp)-(627,bt+2),2,bf ' black shadow
LINE (lf,tp)-(rt,bt),1,bf ' white box
LINE (lf,tp)-(rt,tp)
LINE (4,22)-(625,24),2,bf
LINE (4,24)-(8,32),2,bf
LINE (42,tp)-(42,bt)
LINE (131,tp)-(131,bt)
LINE (195,tp)-(195,bt)
LINE (268,tp)-(268,bt)
LINE (312,tp)-(312,bt)
LINE (355,tp)-(355,bt)
LINE (443,tp)-(443,bt)
LINE (564,tp)-(564,bt)
LINE (624,22)-(627,bt),2,bf
LINE (lf,bt)-(rt,bt)
LOCATE 2,2
COLOR 2,3:PRINT "MONTH:";:PRINT TAB(19);:
COLOR 2,3:PRINT "YEAR:";:PRINT TAB(49);:
COLOR 2,3:PRINT "High No:";:PRINT TAB (64);:
COLOR 2,3:PRINT "Line No:"
LOCATE 2,9:PRINT MTH$(MT)
LOCATE 2,25:PRINT YR$
COLOR 1,2:LOCATE 4,2:PRINT Z2$
IF PQ=1 THEN PQ=0:SU=1:GOSUB 1915:RETURN
GOSUB 1915:NUM=NUM+1:V=V+1:IF NUM=2 THEN V=V-1:NUM=1
GOSUB 1915:V=V-1:IF AL=1 THEN AL=0:V=V+1
RETURN
CHGMTH:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,4:
PRINT "Type in Month > Number 1 to 12 < "
BB=21:LL=38 :GOSUB 50
MT=VAL(C$): IF LEN(C$) =1 THEN C$="0"+C$
IF MT>12 THEN PRINT BL$:GOTO CHGMTH
MA$=RIGHT$(STR$(MT),2)
IF LEN(MA$) <> 2 THEN PRINT BL$:GOTO CHGMTH
LOCATE 22,4:COLOR 2,3
PRINT "Type in Year > 4 numbers < "
BB=22:LL=32: GOSUB 50
YR$=C$
IF LEN(YR$) <> 4 THEN PRINT BL$;:GOTO CHGMTH
GOSUB CLRBT:COLOR 2,3:
LOCATE 21,4:PRINT "Month = ";MTH$(MT);:PRINT " - Year = ";YR$
LOCATE 22,4:PRINT "Are You Happy With These Figures ? Y/N"
90 :
KL$=INKEY$ :KL$=UCASE$(KL$)
IF KL$="Y" THEN 91
IF KL$= "N" THEN CHGMTH
IF KL$ <> "Y" OR KL$ <> "N" THEN 90
91 :
COLOR 2,3:LOCATE 2,9:PRINT " ":LOCATE 2,25:PRINT " "
COLOR 2,3:LOCATE 2,9:PRINT MTH$(MT);:
LOCATE 2,25:PRINT YR$;:
COLOR 2,1
NUM=NM:V=V-1
AL=1:GOSUB 81:GOTO DATE
100 :
F=0:C$=""
IF SS=1 THEN SS=0:LOCATE V,H:COLOR 2,3:PRINT SS$:COLOR 2,1:GOTO GetAKey
LOCATE V,H:COLOR 1,3:PRINT " ":COLOR 2,1
GetAKey:
A$=INKEY$
IF A$=CHR$(32) THEN GOTO MOVE
A$=UCASE$(A$)
IF A$="" THEN GOTO GetAKey
IF A$=CHR$(8) THEN GOTO BACKSPACE
SK=LEN(C$):IF SK>0 THEN GOTO SKIP
IF A$=CHR$(31) THEN MV=1:LOCATE V,H:PRINT " ":RETURN
IF A$=CHR$(30) THEN MV=2:LOCATE V,H:PRINT " ":RETURN
IF A$=CHR$(28) AND H=3 THEN LOCATE V,H:PRINT TD$:JP=1:RETURN
IF A$=CHR$(29) AND H=3 THEN LOCATE V,H:PRINT TD$:JP=2:RETURN
IF A$=CHR$(134) AND H=3 THEN SU=1:LQ=0:LOCATE V,H:PRINT TD$:GOSUB WRITDAT:GOSUB CONVNR:GOSUB MAKEDATA:GOSUB 1900:RETURN
IF A$=CHR$(129) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO SAVFIL
IF A$=CHR$(130) AND H=3 THEN LOCATE V,H:PRINT TD$:QT=2:GOTO SAVFIL
IF A$=CHR$(136) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO ALPHAPRINT
IF A$=CHR$(131) AND H=3 THEN LOCATE V,H:PRINT TD$: GOTO MOVETONUM
IF A$=CHR$(137) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO QSLCARD
IF A$=CHR$(138) AND H=3 THEN LOCATE V,H:PRINT TD$:QT=1:GOTO SAVFIL
IF A$=CHR$(139) AND H=3 THEN LOCATE V,H:PRINT TD$:GOSUB HELP:RETURN
IF A$=CHR$(133) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO LOGBOOK
IF A$=CHR$(132) AND H=3 THEN LOCATE V,H:PRINT TD$:GOTO CHGMTH
IF A$=CHR$(135) AND H=3 THEN LOCATE V,H:PRINT TD$:GOSUB QSLCONF:R%=NUM:GOSUB WRIQSL:GOTO DATE
SKIP:
IF A$=CHR$(13) THEN GOTO SHOW
IF A$>CHR$(57) AND A$<CHR$(65) THEN GOTO GetAKey
IF A$>CHR$(128) AND A$<CHR$(140) AND H=7 THEN GOTO MOVE
IF A$>CHR$(46) AND A$<CHR$(91) THEN GOTO MOVE
IF F=0 THEN GOTO GetAKey
SHOW:
LOCATE V,H:PRINT C$;:COLOR 2,1:PRINT " "
RETURN
MOVE:
C$=C$+A$ :LOCATE V,H:PRINT C$;
IF WN=2 AND C$=" "THEN QT=3:GOTO SAVFIL
IF WN=1 AND LEN(C$) >3 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
IF WN=2 AND LEN(C$) >9 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
IF WN=3 AND LEN(C$) >4 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
IF WN=4 AND LEN(C$) >5 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
IF WN=5 AND LEN(C$) >9 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
IF WN=6 AND LEN(C$) >13 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
IF WN=7 AND LEN(C$) >2 THEN PRINT BL$:LOCATE V,H:PRINT " ":GOTO 100
COLOR 1,3:PRINT " ":COLOR 2,1
GOTO GetAKey
BACKSPACE:
L=LEN (C$)-1:IF L=-1 THEN GOTO GetAKey
C$= LEFT$(C$,L)
LOCATE V,H:PRINT C$;
COLOR 1,3:PRINT " ";:COLOR 2,1:PRINT " "
GOTO GetAKey
SAVFIL:
GOSUB CLRBT
IF QT=2 THEN COLOR 2,3:LOCATE 22,4:PRINT "PLEASE WAIT..... NOW SAVING DATA BEFORE RUNNING HEADING-CHANGE !":GOTO HOP1
COLOR 2,3:LOCATE 22,4:PRINT "Please wait now saving ALL info...";:
HOP1:
COLOR 2,1
GOSUB 700: GOSUB WRI.INNUM:
IF QT=1 THEN SYSTEM
IF QT=2 THEN QT=0:RUN "Heading"
IF QT=3 THEN QT=0:RUN "EAGLE"
NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE
HELP:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,4
PRINT "FUNCTION KEYS 2. ChangeHeading 5. Print Logbook 8. Alpha Print-out ";:
LOCATE 22,4:
PRINT " 3. Move To Line 6. Save Lineinfo 9. Print QSL Cards ";:
LOCATE 23,4:
PRINT "1. SAVE ALL INFO 4. New Month 7. QslCard Back 10. SAVE info & QUIT";:
COLOR 2,1:MB=1
RETURN
200 :
C$=LEFT$(CS$,1):
W=1:T=DKX-2:Z=T:FL=0:UP=0:DWN=0:Y=0:XL=0:XK=0
203 :
X= INT (T/2)
204 :
IF C$ = LEFT$(XX$(T),1) THEN 229
IF C$ < LEFT$(XX$(T),1) THEN T = (T-X):X = INT(X/2):XL=1
IF X = 0 AND XL = 1 THEN T = T - 1
IF T < 1 THEN T = 0:GOTO 228
IF T > Z THEN T = 0:GOTO 228
IF C$ > LEFT$(XX$(T),1) THEN T = (T+X):X = INT(X/2):XK=1
IF X=0 AND XK=1 THEN T=T+1
W=1
FL=FL+1: IF FL=20 THEN T=0: GOTO 218
IF T<1 THEN T=0:GOTO 228
IF T > Z THEN T=0: GOTO 228
XL=0:XK=0: GOTO 204
IF C$= LEFT$(XX$(T),1) THEN 229
GOTO 222
218 :
IF C$ <> LEFT$(XX$(T),1) THEN 228
IF C$ = LEFT$(XX$(T),1) THEN 229
IF UP=1 THEN T=T+1: GOTO 218
IF DWN=1 THEN T=T-1: GOTO 218
222 :
IF FL THEN GOTO 204
228 :
COLOR 2,3
LOCATE 23,40:PRINT "COUNTRY NOT LISTED";:COLOR 2,1:RETURN
229 :
IC=T
COUNT1:
IF C$=LEFT$(XX$(IC),1) THEN IC=IC+1:GOTO COUNT1
EN=IC:IC=T
COUNT2:
IF C$=LEFT$(XX$(IC),1) THEN IC=IC-1:GOTO COUNT2
SN=IC
FOR I=SN TO EN
IF LEFT$(CS$,3) = > XX$(I) AND LEFT$(CS$,3) = < XL$(I) THEN GOTO BINGO
NEXT I
COLOR 2,3
LOCATE 23,40:PRINT "COUNTRY NOT LISTED";:COLOR 2,1:RETURN
BINGO:
IF XH$(I) <> "&" THEN BINGO2
IF XH$(I)="&" AND I=117 AND MID$(CS$,4,1)="A" THEN XH$(I)="EASTER ISLAND":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=117 AND MID$(CS$,4,1)="X" THEN XH$(I)="SAN FELIX":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=117 AND MID$(CS$,4,1)="Z" THEN XH$(I)="JUAN FERNANDEZ":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="G" THEN XH$(I)="GLORIOSO ISL":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="E" THEN XH$(I)="JUAN DE NOVA - EUROPA":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="J" THEN XH$(I)="JUAN DE NOVA - EUROPA":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=168 AND MID$(CS$,4,1)="T" THEN XH$(I)="TROMELIN":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=170 AND MID$(CS$,4,1)="W" THEN XH$(I)="COZET":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=170 AND MID$(CS$,4,1)="X" THEN XH$(I)="KERGUELEN ISL":RQ=1:GOTO BINGO2
IF XH$(I)="&" AND I=170 AND MID$(CS$,4,1)="Z" THEN XH$(I)="AMSTERDAM & ST.PAUL ISL":RQ=1
BINGO2:
COLOR 2,3
LOCATE 23,37:PRINT CS$;:PRINT " --> ";:PRINT XH$(I);:IF RQ=1 THEN RQ=0:XH$(I)="&"
COLOR 2,1
RETURN
QSLCONF:
IF NUM=>NM+1 THEN GOSUB NOGO:RETURN
QL$="*":LOCATE V,78:PRINT QL$
LOCATE V,72:PRINT NUM;:LOCATE V,78:PRINT QL$;:
RETURN
NOGO:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,4:PRINT "Save this line first with key F6 and then use F7.."
COLOR 2,1
RETURN
QSLCARD:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,4:PRINT "QSL Card to be Printed No: ";NUM:R%=NUM
GOSUB CHECKDAT:
LOCATE 22,4:PRINT "Card In Printer Y/N "
505 :
KL$=INKEY$ :KL$=UCASE$(KL$)
IF KL$="Y" THEN 510
IF KL$= "N" THEN 508
IF KL$ <> "Y" OR KL$ <> "N" THEN 505
508 :
IF KL$="N" THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE
510 :
MD$=" CW"
IF MID$(RI$,2,1)="-" THEN MD$="S.S.B"
RM=2:X=2:IF LEN(FQ$)=5 THEN X=3:RM=1
TM$=LEFT$(TM$,2)+RIGHT$(TM$,2)
LPRINT "":LPRINT "":LPRINT "":LPRINT "":LPRINT "":LPRINT ""
LPRINT "":LPRINT "":LPRINT "":LPRINT "":
IF LEN(CS$)=4 THEN 521
IF LEN(CS$)=5 THEN 522
IF LEN(CS$)=6 THEN 528
IF LEN(CS$) > 8 THEN 534
IF LEN(CS$) > 6 THEN 550
521 :
LPRINT TAB(21):LPRINT CHR$(&He);CS$;CHR$(&H14);SPC(6):GOTO 536
522 :
LPRINT TAB(21):LPRINT CHR$(&He);CS$;CHR$(&H14);SPC(4):GOTO 536
526 :
LPRINT TAB(21):LPRINT CHR$(&He);CC$;CHR$(&H14);CD$;:
LPRINT SPC(15-(LEN(CC$)*2)-LEN(CD$)):GOTO 536
528 :
LPRINT TAB(21):LPRINT CHR$(&He);CS$;CHR$(&H14);SPC(2):GOTO 536
534 :
LPRINT TAB(22):LPRINT CS$;:LPRINT SPC(13 - LEN(CS$));:
536 :
LPRINT MID$(DT$,4,2);" ";MM$(VAL(LEFT$(DT$,2)));" ";RIGHT$(DT$,4);:
LPRINT SPC(1):LPRINT TM$;:LPRINT SPC(1):LPRINT LEFT$(FQ$,X);:
LPRINT SPC(RM):LPRINT RI$;:LPRINT SPC(1):LPRINT MD$
GOSUB CLRBT
538 :
LOCATE 22,4:A$=INKEY$:
IF A$="" THEN 538
LPRINT TAB(55):LPRINT CHR$(&He);CS$;CHR$(&H14)
FOR I = 1 TO 10: LPRINT "":NEXT
TM$=LEFT$(TM$,2)+":"+RIGHT$(TM$,2)
QL$="-":GOSUB WRIQSL
V=6:GOSUB 81:V=V+1:GOTO DATE
550 :
A=5:U=LEN(CS$)
551 :
IF MID$(CS$,A,1)="/" THEN CC$=LEFT$(CS$,(A-1)):CD$=MID$(CS$,A,(U-A+1)): GOTO 526
A=A+1:IF A=U THEN 526
GOTO 551
ALPHAPRINT:
GOSUB CLRBT
COLOR 2,3:LOCATE 21,50:PRINT "ALPHA-PRINTOUT..."
LOCATE 21,4:PRINT "Starting Letter(s) of List: "
BB=21:LL=32:GOSUB 50:ST$=C$
B = LEN(ST$):IF B > 6 THEN PRINT BL$: GOTO ALPHAPRINT
COLOR 2,3:LOCATE 22,4:PRINT "Ending Letter(s) of List: "
BB=22:LL=31:GOSUB 50:EN$=C$
W = LEN(EN$):IF W > 6 THEN PRINT BL$: GOTO ALPHAPRINT
GOSUB CLRBT:COLOR 2,3:LOCATE 21,50:PRINT "ALPHA-PRINTOUT...":LOCATE 21,4:PRINT "Print-out will be from ";ST$;" to ";EN$
LOCATE 22,4:PRINT "Are You Happy With These Figures ? Y/N ";:
BCK1:
KL$=INKEY$ :KL$=UCASE$(KL$)
IF KL$ = "Y" THEN BCK3
IF KL$= "N" THEN BCK2
IF KL$ <> "Y" OR KL$ <> "N" THEN BCK1
BCK2:
IF KL$="N" THEN NUM=NM:V=V-1:AL=1:GOSUB 81:GOTO DATE
BCK3:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,50:PRINT "ALPHA-PRINTOUT..."
LOCATE 21,4:PRINT "Printout every CallSign ONCE ? Y/N"
BCK4:
KL$=INKEY$ :KL$=UCASE$(KL$)
IF KL$ = "Y" THEN EC=0:GOTO BCK5
IF KL$= "N" THEN EC=1:GOTO BCK5
IF KL$ <> "Y" OR KL$ <> "N" THEN BCK4
BCK5:
PG=1:PA=1
FOR I = 1 TO NUM: IF ST$=LEFT$(IN$(I),B) THEN Q = I:GOTO JMP1
NEXT I
IF Q=0 THEN Q=1
JMP1:
FOR I = NUM TO 1 STEP - 1:IF EN$=LEFT$(IN$(I),W) THEN E=I:GOTO JMP2
NEXT I
GOSUB CLRBT
JMP2:
R%=VAL(RIGHT$(IN$(Q),4)):R$=RIGHT$(IN$(Q),4)
GOSUB CHECKDAT:
IF Q=1 THEN GOTO 600
IF EC=1 THEN 600
AV$=LEFT$(IN$(Q-1),LEN(IN$(Q-1))-4)
IF AV$=CS$ THEN Q=Q+1:PG=PG-1:GOTO JMP3
600 :
IF PG=1 THEN LPRINT TAB(25):LPRINT "A L P H A L I S T from ";ST$;" to ";EN$;:LPRINT TAB (70)
IF PG=1 THEN LPRINT "PAGE :"PA:FOR I = 1 TO 80:LPRINT "-";:NEXT
IF PG=1 THEN LPRINT "NUM. CALLSIGN DATE TIME FREQ. SIGNAL SIGNAL NAME TOWN QSL":
IF PG=1 THEN FOR I = 1 TO 80:LPRINT "-";:NEXT:LPRINT:
GOSUB PRILINE:Q=Q+1
JMP3:
IF Q=E+1 THEN FOR I=1 TO 80:LPRINT "-";:NEXT I:NUM=NM:AL=1:V=V-1:GOSUB 81: GOTO DATE
PG=PG+1:IF PG=KJ THEN PG = 1:PA=PA+1:LPRINT :LPRINT :FOR I=1 TO 80:LPRINT "-";:NEXT:LPRINT :LPRINT :LPRINT :LPRINT :
GOTO JMP2
PRILINE:
LPRINT R$;:LPRINT TAB(6):LPRINT CS$;:LPRINT TAB(16):
LPRINT MID$(DT$,4,2);" ";MM$(VAL(LEFT$(DT$,2)));"'";RIGHT$(DT$,2);:
LPRINT TAB(28):LPRINT TM$;:LPRINT TAB(34):LPRINT FQ$;:LPRINT TAB(41):
LPRINT "His:";RI$;:LPRINT TAB(49):LPRINT "Me:";RO$;:LPRINT TAB(57):
LPRINT NM$;:LPRINT TAB(66):LPRINT QT$;:LPRINT TAB(80):LPRINT QL$
LPRINT ""
RETURN
700 : ' Check-routine for the right NUM after (F1)
R%=NUM:X=0:
705 :
GOSUB CHECKDAT
IF CS$ = "" OR LEFT$(CS$,1)=" " THEN R%=R%-1:X=1: GOTO 705
IF X=1 AND CS$ <> CHR$(13) THEN GOTO 730
IF CS$ <> CHR$(13) THEN R%=R%+1: GOTO 705
730 :
NUM=R%
RETURN
1000 :
GOSUB REA.INNUM:GOSUB 80
MA$=LEFT$(DATE$,2):MN=VAL(MA$):V=V+1
DATE: 'TD$=DD DT$=MM-DD-YYYY
WN=7:COLOR 2,1
LOCATE V,3:PRINT TD$:IF LEN (TD$) >1 THEN SS=1:SS$=LEFT$(TD$,1)
H=3: GOSUB 100
IF SU=1 THEN SU=0:GOTO DATE
IF JP THEN LOCATE V,H:PRINT TD$:GOSUB 1800 :GOTO DATE
IF MV=1 THEN MV=0:LOCATE V,H:PRINT TD$:GOTO QTH
IF MV=2 THEN MV=0:LOCATE V,H:PRINT TD$:GOTO CALLSIGN
IF C$="" THEN TD$=MID$(DATE$,4,2):LOCATE V,3:PRINT TD$:GOTO CALLSIGN
IF LEN (C$) > 2 THEN PRINT BL$:GOTO DATE
TD$=C$:IF LEN (C$) = 1 THEN TD$="0"+C$:LOCATE V,3:PRINT TD$
CALLSIGN:
IF MB=1 THEN MB=0:GOTO DATE
WN=2
IF MCS=1 THEN SKIPOCS
IF CS$="" THEN FX=1
OCS$=CS$:
SKIPOCS:
LOCATE V,7:PRINT CS$:IF LEN (CS$) >1 THEN SS=1:SS$=LEFT$(CS$,1)
H=7: GOSUB 100:
IF NUM = < NM THEN NCS=1
IF MV=1 THEN MV=0:LOCATE V,7:PRINT CS$:GOTO DATE
IF C$="" OR MV=2 THEN MV=0:LOCATE V,7:PRINT CS$:GOTO TYD
CS$=C$
IF NUM = < NM THEN 1092
GOSUB 2 :GOSUB 200
1092 :
IF NCS=1 AND OCS$ < > CS$ THEN MCS=1
LOCATE V,7:PRINT " ":LOCATE V,7:PRINT CS$
TYD:
WN=3
LOCATE V,19:PRINT TM$:IF LEN (TM$) >1 THEN SS=1:SS$=LEFT$(TM$,1)
H=19: GOSUB 100
IF MV=1 THEN MV=0:LOCATE V,19:PRINT TM$:GOTO CALLSIGN
IF MV=2 THEN MV=0:LOCATE V,19:PRINT TM$:GOTO FREQUENTY
IF C$=""THEN TM$=LEFT$(TIME$,5):LOCATE V,19:PRINT TM$:GOTO FREQUENTY
IF LEN (C$)=1 THEN C$="000"+C$
IF LEN (C$)=2 THEN C$="00"+C$
IF LEN (C$)=3 THEN C$="0"+C$
TM$=LEFT$(C$,2)+":"+RIGHT$(C$,2):LOCATE V,19:PRINT TM$
FREQUENTY:
WN=4
LOCATE V,27:PRINT FQ$:IF LEN (FQ$) >1 THEN SS=1:SS$=LEFT$(FQ$,1)
H=27: GOSUB 100
IF MV=1 THEN MV=0:LOCATE V,27:PRINT FQ$:GOTO TYD
IF MV=2 THEN MV=0:LOCATE V,27:PRINT FQ$:GOTO RSTIN
IF C$="" THEN FQ$=QF$:LOCATE V,27:PRINT FQ$:GOTO RSTIN
IF LEN (C$)>5 THEN PRINT CHR$(7):GOTO FREQUENTY
IF LEN (C$)=4 THEN C$=" "+C$
FQ$=LEFT$(C$,2)+"."+RIGHT$(C$,3):QF$=FQ$:LOCATE V,27:PRINT FQ$
RSTIN:
WN=1
LOCATE V,36:PRINT RI$:IF LEN (RI$) >1 THEN SS=1:SS$=LEFT$(RI$,1)
H=36: GOSUB 100
IF MV=1 THEN MV=0:LOCATE V,36:PRINT RI$:GOTO FREQUENTY
IF C$="" OR MV=2 THEN MV=0:LOCATE V,36:PRINT RI$:GOTO RSTOUT
IF LEN(C$)= 3 THEN RI$=C$: LOCATE V,36:PRINT RI$:GOTO RSTOUT
RI$=LEFT$(C$,1)+"-"+RIGHT$(C$,1):LOCATE V,36:PRINT RI$
RSTOUT:
WN=1
LOCATE V,41:PRINT RO$:IF LEN (RO$) >1 THEN SS=1:SS$=LEFT$(RO$,1)
H=41: GOSUB 100
IF MV=1 THEN MV=0:LOCATE V,41:PRINT RO$:GOTO RSTIN
IF C$="" OR MV=2 THEN MV=0:LOCATE V,41:PRINT RO$:GOTO NAAM
IF LEN(C$)= 3 THEN RO$=C$: LOCATE V,41:PRINT RO$:GOTO NAAM
RO$=LEFT$(C$,1)+"-"+RIGHT$(C$,1):LOCATE V,41:PRINT RO$
NAAM:
IF YU=1 THEN YU = 0: LQ=1:GOTO QSL
WN=5
LOCATE V,46:PRINT NM$:IF LEN (NM$) >1 THEN SS=1:SS$=LEFT$(NM$,1)
H=46: GOSUB 100
IF MV=1 THEN MV=0:LOCATE V,46:PRINT NM$:GOTO RSTOUT
IF C$="" OR MV=2 THEN MV=0:LOCATE V,46:PRINT NM$:GOTO QTH
NM$=C$:LOCATE V,46:PRINT " ":LOCATE V,46:PRINT NM$
QTH:
WN=6
LOCATE V,57:PRINT QT$:IF LEN (QT$) >1 THEN SS=1:SS$=LEFT$(QT$,1)
H=57: GOSUB 100
IF MV=1 THEN MV=0:LOCATE V,57:PRINT QT$:GOTO NAAM
IF C$="" OR MV=2 THEN MV=0:LOCATE V,57:PRINT QT$:GOTO DATE
QT$=C$:LOCATE V,57:PRINT " ":LOCATE V,57:PRINT QT$
QSL:
IF LQ=1 THEN GOTO QLPR
IF NUM=1 AND NM=1 THEN GOTO SKIP3
IF NUM = < NM THEN GOTO QLPR
SKIP3:
QL$="+":LOCATE V,78:PRINT QL$
QLPR:
LOCATE V,72:PRINT NUM;:LOCATE V,78:PRINT QL$;:
GOTO DATE
MOVETONUM:
GOSUB CLRBT
COLOR 2,3:LOCATE 21,50:PRINT "MOVE TO LINE-NUMBER..."
LOCATE 21,4:PRINT "Type in Line Number :"
BB=21:LL=26:GOSUB 50:R$=C$:COLOR 2,3
LOCATE 22,4:PRINT "Correct Number Y/N ? "
1505 :
KL$=INKEY$ :KL$=UCASE$(KL$):IF KL$="Y" THEN 1510
IF KL$= "N" THEN 1508
IF KL$ <> "Y" OR KL$ <> "N" THEN 1505
1508 :
IF KL$="N" THEN NUM=NM:V=6:AL=1:GOSUB 81:GOTO DATE
1510 :
R%=VAL(R$):NUM=R%-1:IF NUM=0 THEN NUM = 1
GOSUB CHECKDAT
V=6:GOSUB 81:V=V+1:GOTO DATE
1800 : 'Decrement Line
IF CS$ = "" THEN LOCATE V,73:PRINT " ";:
IF JP=2 THEN GOTO 1900
V=V-1:NUM=NUM-1:IF NUM < 1 THEN NUM = 1 :V=V+1:NF=1
IF V<6 THEN V=19
GOTO 1910
1900 : 'Increment Line
IF JL=1 THEN JL=0:RETURN
V=V+1:NUM=NUM+1
IF V>19 THEN V=6
1910 :
IF NF=1 THEN NF=0:JP=0:RETURN
1915 :
JP=0
R%=NUM:GOSUB READAT
IF V < 6 THEN V = 19
IF V > 19 THEN V = 6
TD$=MID$(DT$,4,2)
COLOR 2,1 : IF CS$="" THEN CS$=" ":KO=1
LOCATE V,3:PRINT TD$;:PRINT TAB(7);CS$;:PRINT TAB(19);TM$;:
LOCATE V,27:PRINT FQ$;:PRINT TAB(36);RI$;:PRINT TAB(41);RO$;:
LOCATE V,46:PRINT NM$;:PRINT TAB(57);QT$;:
LOCATE V,72:PRINT NUM;:PRINT TAB(78);QL$;:
IF KO=1 THEN KO=0:CS$=""
COLOR 2,3:LOCATE 2,57:PRINT NM:LOCATE 2,72:PRINT NUM
CLRBT:
COLOR 3,3:FOR I=21 TO 23:LOCATE I,4:PRINT STRING$(77," ");:NEXT
COLOR 2,1
RETURN
WRITDAT:
R%=NUM :DT$=MA$+"-"+TD$+"-"+YR$
WRIQSL:
IF LEFT$(CS$,1)=" " OR CS$="" THEN RETURN
IF NUM > NM+1 THEN JL=1:GOTO WARN1
OPEN "R",#1,"LOGFIL",59
FIELD #1,10 AS A$,9 AS B$,5 AS C$,6 AS D$,3 AS E$,3 AS F$,9 AS G$,13 AS H$,1 AS I$
LSET A$=DT$
LSET B$=CS$
LSET C$=TM$
LSET D$=FQ$
LSET E$=RO$
LSET F$=RI$
LSET G$=NM$
LSET H$=QT$
LSET I$=QL$
PUT #1,R%
CLOSE #1
IF MCS=1 THEN MCS=0:NCS=0:GOSUB CHKCHGCS
RETURN
WARN1:
GOSUB CLRBT:COLOR 2,3:LOCATE 21,4
PRINT "You CANNOT Save this line......"
LOCATE 22,4:PRINT "There is NO info on previous line(s) !!!";:
PRINT BL$:COLOR 2,1
RETURN
READAT:
R%=NUM
CHECKDAT:
OPEN "R",#1,"LOGFIL",59
FIELD #1,10 AS A$,9 AS B$,5 AS C$,6 AS D$,3 AS E$,3 AS F$,9 AS G$,13 AS H$,1 AS I$
GET #1,R%
LET DT$=A$
LET CS$=B$
LET TM$=C$
LET FQ$=D$
LET RO$=E$
LET RI$=F$
LET NM$=G$
LET QT$=H$
LET QL$=I$
CLOSE #1
Z=INSTR(CS$," "):IF Z=0 THEN RETURN
CS$=LEFT$(CS$,Z-1):Z=0
RETURN
WRI.INNUM:
OPEN "INFLOG" FOR OUTPUT AS #1
WRITE #1,NUM
FOR I = 1 TO NUM
WRITE #1,IN$(I)
NEXT I
CLOSE #1
KILL "INFLOG.INFO"
RETURN
REA.INNUM:
OPEN "I",#1,"INFLOG"
INPUT #1,NUM
DM=NUM+250:DIM IN$(DM)
FOR I = 1 TO NUM
INPUT #1,IN$(I)
NEXT I
CLOSE #1
IF NUM=0 THEN NUM=1
NM=NUM
RETURN
CONVNR: 'Convert Num into string for Callsign+number
IF NUM=1 AND NM=1 THEN FC=1: GOTO SKIP2
IF LEFT$(CS$,1)=" " OR CS$="" THEN RETURN
IF NUM = < NM THEN RETURN
IF JL=1 THEN RETURN
SKIP2:
A$=STR$(NUM):A$=MID$(A$,2,(LEN(A$)-1))
IF LEN(A$)=1 THEN A$="000"+A$
IF LEN(A$)=2 THEN A$="00"+A$
IF LEN(A$)=3 THEN A$="0"+A$
CS$=CS$+A$:IN$(NUM)=CS$
IF FC=1 THEN FC=0:RETURN: 'FC is flag for FIRST CALLSIGN
NM=NM+1:
FOR I=NUM TO 2 STEP - 1
IF IN$(I) < IN$(I-1) THEN SWAP IN$(I),IN$(I-1):NEXT I
RETURN
CHKCHGCS: 'Check Change in CallSign
IF OCS$="" OR LEFT$(OCS$,1)=" " THEN RETURN
JO=1
GOSUB 2
JO=0
LKAGN:
IF VAL(RIGHT$(IN$(Q),4))=R% THEN CH=Q:CS$ = CS$ + RIGHT$(IN$(Q),4): IN$(Q)=CS$: GOTO ALPHASORT
Q=Q+1:IF Q=E+1 THEN RETURN
GOTO LKAGN
RETURN
ALPHASORT:
IF Q=1 THEN CH=0:RETURN
IF IN$(Q) < IN$(Q-1) THEN SWAP IN$(Q),IN$(Q-1):Q=Q-1:GOTO ALPHASORT
IF Q <> CH THEN CH=0:RETURN
SECALFA:
IF Q=NM THEN CH=0:RETURN
IF IN$(Q) > IN$(Q+1) THEN SWAP IN$(Q),IN$(Q+1):Q=Q+1:GOTO SECALFA
CH=0
RETURN
MAKEDATA:
IF VAL(SU$(2))=< NUM+50 THEN GAH
RETURN
GAH:
GOSUB CLRBT:COLOR 2,3
LOCATE 21,5:PRINT "Please WAIT, now updating files......."
LOCATE 22,5:PRINT "Writing DATA to file > Line NUMBER = "
S$=SU$(2):I%=VAL(S$)-1
E%=I%+51:E$=STR$(E%):SU$(2)=E$:SU$(3)=""
SU$(2)=MID$(SU$(2),2,LEN(SU$(2))-1):SU$(3)=SU$(2)
DT$="":CS$="":TM$="":FQ$="":RO$=""
RI$="":NM$="":QT$="":QL$=""
OPEN "R",#1,"LOGFIL",59
FIELD #1,10 AS A$,9 AS B$,5 AS C$,6 AS D$,3 AS E$,3 AS F$,9 AS G$,13 AS H$, 1 AS I$
START:
I%=I%+1:IF I%=E% THEN CLOSE #1:GOTO WRISETUP
LOCATE 22,41: PRINT I%;:
LSET A$ = DT$
LSET B$ = CS$
LSET C$ = TM$
LSET D$ = FQ$
LSET E$ = RO$
LSET F$ = RI$
LSET G$ = NM$
LSET H$ = QT$
LSET I$ = QL$
PUT #1,I%
GOTO START
WRISETUP:
OPEN "SETUP"FOR OUTPUT AS #1
FOR I = 1 TO 4
WRITE #1,SU$(I)
NEXT
CLOSE #1
KILL "SETUP.INFO"
RETURN
30000 :
DIM MM$(12) :V=6:BL$=CHR$(7)
DIM MTH$(12):MT=VAL(LEFT$(DATE$,2)):YR$=RIGHT$(DATE$,4)
Z2$="DATE CALLSIGN TIME FREQ. HIS ME NAME QTH NUM QSL"
DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
FOR I=1 TO 12:READ MTH$(I):NEXT
DATA JAN.,FEB.,MAR.,APR.,MAY.,JUN.,JUL.,AUG.,SEP.,OCT.,NOV.,DEC.
FOR I = 1 TO 12:READ MM$(I):NEXT
OPEN "I",#1,"SETUP"
INPUT #1,SU$(1)
INPUT #1,SU$(2)
INPUT #1,SU$(3)
INPUT #1,SU$(4)
CLOSE #1
X=INT(LEN(SU$(1))/2):Z=33-X
KJ=VAL(SU$(4))
DIM XX$(450):DIM XL$(450):DIM XH$(450)
OPEN "I",#1,"COUNTRY"
INPUT #1,DKX
FOR I=1 TO DKX
INPUT #1,XX$(I)
INPUT #1,XL$(I)
INPUT #1,XH$(I)
NEXT
CLOSE #1
RETURN